home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
doors_2
/
pgsysp.zip
/
PSYS.DOC
< prev
next >
Wrap
Text File
|
1991-07-25
|
29KB
|
771 lines
////// ////// // // ////// The Psychological SysOp.
// // /// // // /// Version 1.00 BETA.
////// ///// //// ///// By Peter G. Zion.
// /// /// /// Copyright 1991.
// /////////// /// // ////// All rights reserved.
//
//
Table of Contents
What is Psys? . . . . . . . . . . . . . . . . . . . . . . . . 3
Licence . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Test Drive . . . . . . . . . . . . . . . . . . . . . . . . . 3
Remote Use . . . . . . . . . . . . . . . . . . . . . . . . . 4
Name Macros . . . . . . . . . . . . . . . . . . . . . . . . . 4
Forcing Output . . . . . . . . . . . . . . . . . . . . . . . 5
Colour Control . . . . . . . . . . . . . . . . . . . . . . . 5
Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . 5
The Status Line . . . . . . . . . . . . . . . . . . . . . . . 6
Real Chat Mode . . . . . . . . . . . . . . . . . . . . . . . 6
Typing Speed . . . . . . . . . . . . . . . . . . . . . . . . 7
Backspace Type . . . . . . . . . . . . . . . . . . . . . . . 7
Exiting Psys . . . . . . . . . . . . . . . . . . . . . . . . 7
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
The Language File . . . . . . . . . . . . . . . . . . . . . . 8
The General Section . . . . . . . . . . . . . . . . . . 8
The Response Section . . . . . . . . . . . . . . . . . . 9
The Random Response Section . . . . . . . . . . . . . 10
The Personal Section . . . . . . . . . . . . . . . . . 10
Text Macros . . . . . . . . . . . . . . . . . . . . . 11
Some Notes on the Language File . . . . . . . . . . . 11
Some Notes on Sharing . . . . . . . . . . . . . . . . . . . 12
Mailing Address . . . . . . . . . . . . . . . . . . . . . . 12
What is Psys?
Psys is a `semi-intelligent' SysOp emulation. Psys takes
advantage of the unique aspect of SysOp chat mode that the user
cannot tell who is actually typing on the SysOp side. Users are
typically unable to tell the difference between Psys and the real
SysOp for at least a few minutes. This comes in handy in several
situations, including:
- Having to chat with annoying users
- Having to answer the SAME QUESTIONS OVER AND OVER
- Using a never-tiring program to make it look like you care
- When you need a good laugh
Psys attempts to mimic a SysOp chat through three factors,
namely, making somewhat intelligent replies to what the user
types, imitating a human's typing, and imitating a SysOp chat
environment. Psys even works with a user configurable language
file. Best of all, Psys captures it all to a log for later
reference.
It is important that you read all of the documentation for
Psys thoroughly before using it on a remote user -- that's why
I've spent time on writing these docs!
Licence
Use of Psys is at your own risk. The author takes no
responsibility for anything that results from the use of Psys,
except a laugh or two. No fee may be charged for Psys in any way
whatsoever, EXCEPT if as part of the file library of a pay BBS.
Psys is free, although Peter Zion retains all ownership of
the program. However, if you wish to give me a "keep up the good
work" donation, you can send that along to the address listed at
the end of the documentation. Any donation of $15 or more will
receive, if requested, a free copy of, on 5.25" disk and/or the
magic filename and password to file request at my FidoNet/ImexNet
node number (also listed below) the C/assembly source code for
Psys.
Credits
Thanks to Scott Dudley, author of Maximus-CBCS, for his help
in testing the program and finding a few nasty bugs. Thanks also
to Eric Vice for his helpful suggestions.
Test Drive
Psys Version 1.00 By Peter G. Zion Page 3
To give Psys a `test drive', make sure all the Psys files
are in your current directory, and type the following at the
command line:
PSYS /P0 /J"Hello, @u" /NS"Joe Computer" /NU"<your name>"
and argue to your heart's content. When you want to exit, either
type "Go Away" or press [ESC].
Remote Use
Although usable in local mode with the /P0 command line
parameter, Psys is designed primarily for remote use over the
modem. To communicate over the modem, Psys uses a FOSSIL driver.
If you plan to run Psys from a BBS that already uses a FOSSIL
driver, such as Maximus or Opus, then you need not worry about
this. But if you don't normally have a FOSSIL drive loaded, then
you will have to do so before running Psys. There are several
FOSSIL drivers available, such as David Nugent's BNU.
There are two command line parameters that are important to
the use of Psys remotely: /P (com port) and /B (baud rate). The
parameter /P must always be specified, and it is immediately
followed by the number of the com port, with 0 being local mode
(eg. /P2 means to use com port 2). The parameter /B, baud rate,
needs only to be specified if the previous communications program
didn't use the FOSSIL, eg. if you just loaded the FOSSIL before
running Psys, or if you just shelled to DOS from a terminal
program. The baud rate is specified immediately after the /B on
the command line, eg. /B2400 sets it to 2400 baud.
Name Macros
The Psys program uses macros in its language script for the
SysOp's name, user's name, and BBS name. It is important that
these are set correctly so that the default language file for
Psys calls users by their real name. The names are set by the
command line parameter /N, which is followed by a name specifier,
and then a name in quotes. The three possible name specifiers
are U for the user's name, S for the SysOp's name, and B for the
BBS's name. For example, /NS"Joe SysOp" sets the SysOp's name to
"Joe SysOp", and /NU"Petey Zion" will set the users name to
"Petey Zion". This will be used in several of the program's
default phrases, such as "Hello, @u", where @u is the user's
first name. See Text Macros on page 11 for a more complete list
of usable macros. Note that the SysOp name and the BBS name are
usually set permanently in the language file (see Language
File/General Section, page 8).
Psys Version 1.00 By Peter G. Zion Page 4
Forcing Output
There are two command line parameters that force Psys to
display messages right when it starts. The /J"<text>" parameter
causes Psys to type the <text> before the user gets to input
anything. For instance, /J"Hello, Peter" will type "Hello,
Peter" and press enter twice before waiting for the user to type
anything. The /H"<text>" command sends the string <text> to the
user at full speed in the message colour (which defaults to
white, changeable through the /CM parameter -- see Colour
Control, page 5), and presses enter ONCE. This is good for
simulating "CHAT: begin." type messages to make it REALLY
realistic. For instance, /H"The SysOp has arrived!" will send
"The SysOp has arrived!" to the user at full speed in the message
colour.
Colour Control
To make Psys work well with different BBS programs in
simulating their chat modes, the /C switch lets you change the
colours that Psys sends and uses. /C is followed by either U for
user text, S for SysOp text, or M for message text, which is then
followed by the colour number. The 16 colours that Psys supports
are:
0 - Black
1 - Blue
2 - Green
3 - Cyan
4 - Red
5 - Magenta
6 - Brown
7 - Light Grey 8 - Dark Grey
9 - Light Blue
10 - Light Green
11 - Light Cyan
12 - Light Red
13 - Light Magenta
14 - Yellow
15 - White
The colours default to yellow for SysOp, cyan for the user,
and white for the messages -- the chat colours for Maximus. Note
that the only time the user ever sees the message colour is if
you specify a /H (display highlighted text) parameter.
Whether or not the user receives graphics, and what type, is
determined by the /G parameter. It is followed by either 0, 1,
or 2, indicating monochrome (no colour), ANSI colour, and AVATAR
colour, respectively. For instance, /G1 would tell Psys to use
ANSI codes to make the colour changes. Note that this parameter
is only effective when Psys is talking to a remote user.
Log Files
One of the best features of Psys is the log file support.
By default, Psys will capture the conversation between Psys and
Psys Version 1.00 By Peter G. Zion Page 5
the user into a log file (defaulting to "Psys.Log") for later
"reference", useful for a good laugh as well as occasional
blackmail. If you wish to change the name in the log file, use
the /L"<logfile>" parameter, where <logfile> is, you guessed it,
the log file. If you do not wish a log at all, you can use the
/L<+/-> command, where + turns on the log or - turns it off. Note
that these two variations on the /L parameter can be used
together: /L+"My.Log" will turn on the log and set the name to
"My.Log". Also note that the command /L-"<filename>" is somewhat
of a waste of command line space, and that in the current
version, /L+ is somewhat redundant, since the log defaults to on
anyway. Oh well.
If at any time in the session with Psys you wish to toggle
the log on or off, you can press Alt-L: you will be told of the
new status of the log, and it's condition of the status line will
change.
The Status Line
While Psys is operating in either local or remote mode, a
status line will be continually displayed on the bottom of the
screen. The status line has the following format:
"<username> * <chatmode> * <logmode> * <datentime>"
where <username> is the full name of the user, <chatmode> "CHAT"
if you are in "real" chat mode and "NOCHAT" if you aren't (see
Real Chat Mode, page 6), <logmode> will be "LOG" if the log is
open and "NOLOG" if it is closed, and <datentime> is the current
date and time (assuming that you have set it correctly).
Real Chat Mode
If you feel that you need to give the user a little scare in
remote mode, when you press Alt-C you will be transported into
"real" chat mode. This chat mode operates identically to the
chat mode of most BBS programs, and the user will not be notified
of the change. Here is a possible use of "real" chat mode:
User: Are you a computer? I think you are.
Psys: No, I'm a human like most of us.
User: Ok then, what's one plus one?
Now the SysOp sees that his program might be foiled, so he
presses Alt-C, and types:
SysOp: It's two, you bozo! What, didn't they teach you
that?
Psys Version 1.00 By Peter G. Zion Page 6
...and the SysOp then presses ESC. The user will gasp with
amazement and usually apologize to the SysOp for claiming that
he/she is a silicon sack. Of course, to exit "real" chat mode at
any time, just press ESC. Whether or not you are in real chat
mode (in case you somehow forget) is indicated by "CHAT" or
"NOCHAT" on the status line.
Typing Speed
Of course, not everyone types the same. As such, Psys
allows you to modify the default typing speed from the command
line. Typing speed is adjusted using three factors: the maximum,
minimum, and starting speeds. These values are set with the /S
command line parameter. /S is followed by either S, M, or X for
starting, minimum, or maximum, respectively, and it is then
followed by a decimal number to represent the speed. Note that
smaller numbers are faster, and that the minimum speed, as such,
must be a greater number than the maximum speed. The default
numbers are maximum: 35, minimum: 80, and starting: 50. A faster
SysOp might use maximum: 25, minimum: 60, and starting: 40, and a
slower could make adjustments in the opposite direction. The
only real way to test these is to experiment with them in local
mode; there is no guarantee that halving the value will double
the speed.
Backspace Type
Certain VT-100 emulations do not have destructive
backspaces; as such, Psys will normally send a backspace, a
space, and another backspace to make sure that the character is
cleared. If you wish to not have Psys do this, for instance, if
your BBS program doesn't do this, then you can use the /D<+/->
parameter to turn this off (-) or on (+). For instance, /D- will
turn off the extra space and backspace.
Exiting Psys
To exit Psys, either press ESC or wait for the user to type
the default quitting phrase, specified in the language file (see
Language File, page 8), which defaults to "Go away".
Setup
Because of both the wealth of options available in Psys and
the number of different BBS packages that exist, setup of Psys is
left up to the SysOp. However, because I run a Maximus system, I
can tell you a little more about how to set it up for Maximus and
probably Opus as well. I have the file F3.BBS in my \Max\Misc
Psys Version 1.00 By Peter G. Zion Page 7
directory, which consists of the compiled form of the following:
[xtern_run]psys.exe /p%P /j"Hello, @u." /nu"%n" /g%g
/h"CHAT: begin."[quit]
This tells Maximus to shell and run Psys using the current port,
jamming "Hello, <username>" into Psys's first statement, setting
the user name, setting the graphics mode, and making Psys send
"CHAT: begin." in the message colour full speed when started. I
have my name and the board's name set as a default in the
language file (see Language File/General Section, page 8), so I
need not include them as parameters every time. Because I have
named the file F3.BBS, it will automatically be executed when I
press the F3 key locally. I'm not sure that all BBS programs
have this capability, but because of the flexibility of Psys, it
can usually be implemented in one way or another.
The Language File
It is in the language file that the real power of Psys lies.
By changing the language file, the true capability of Psys that
everything that it every says to the user can be modified is
revealed. You can give it certain accents, extra fluency in
certain subject areas, and even turn it into an intelligent help
system if you really want to. The possibilities are endless.
The language file is automatically loaded and processed by
Psys as soon as the program is run. The default language file
that Psys will search for is "Psys.Lng"; if you wish to change
this, use the /F"<langfile>" parameter, where <langfile> is the
path/filename of the language file. The language file is divided
into four sections, namely, the General section, the Response
section, the Random Response section, and the Personal section.
All blank lines and lines starting with a semicolon (';', for
comment lines) in the language file are disregarded.
The General Section
This is where most of the basic default information for Psys
is found. The General section starts with the line:
!Begin General
This tells the Psys language file parser that the lines up until
the !End statement are part of the General section. The next
line is the phrase that, if found anywhere within a user input
line, will cause Psys to end. For example, the line:
Shut up
Psys Version 1.00 By Peter G. Zion Page 8
will make Psys end as soon as the user types something with "Shut
up" in it. When the user DOES do this, the next line in the file
is displayed, for example:
Oh so you want me to shut up? OK, I will then.
If the user says the same thing twice in a row, the next
line of the language file is displayed, for instance:
Please don't repeat yourself.
The next three lines of the file give the default values of
the name macros, in the order of default SysOp name, default user
name, and default BBS name. For instance,
Peter Zion
Joe Average
Pete's Bar and Grill
Of course, these can all be changed via command line parameters
as well -- but it is usually useful to set defaults here so that
you don't have to use the same parameters over and over.
This is all that is required in the General section, so the
next line tells Psys that it is the end and to look for the next
section:
!End General
The Response Section
The next section in the language file is the Response
section. This section is the heart of the Psys language file; it
tells the computer what specific phrases Psys should look for and
what to respond to them with. To start the Response section, use
the
!Begin Response
directive at the start of a line.
The format of the Response section is simple. It is
separated into groups of a set of phrases to look for, followed
by a set of responses to randomly choose from. The computer
differentiates between the phrases and the response because the
responses are offset by a whitespace character [space(s) or
tab(s)]. Follows is a possible group in the Response section:
Hello
Hi
Psys Version 1.00 By Peter G. Zion Page 9
Yo
Goodday
Hi there! How are you?
Goodday and welcome to the great white north!
Hello!
In this instance, the computer will first scan the user's input
for either "Hello", "Hi", "Yo", or "Goodday". If it finds one of
these, there is a pretty good chance (there is slight randomness
of whether it will pick this phrase or another one in the
sentence) that will randomly pick one of the three responses
(offset by spaces) that follow. Psys will detect the end of a
group of responses by either the !End Response directive (ending
the section), or a line that isn't offset by whitespace
(indicating a new group).
The Random Response Section
The Random Response section is a list of responses which
Psys will use when it can't find any of the special phrases in
the Response section. The Random Response section is started
with the
!Begin RandomResponse
directive. The section consist only of a list of random lines
which Psys will pick from, and is terminated by the
!End RandomResponse
directive. There is no special formatting needed.
The Personal Section
The Personal section is used to change the person when using
the '*' macro (which indicates substitution of the rest of the
sentence) in the Response section. The Personal section is
commenced with the
!Begin Personal
directive. The Personal section has the structure of a list of
groups of two phrases, which are substituted for each other in
the end of sentence mentioned above. A possible such group could
be:
You
Me
Your
My
Psys Version 1.00 By Peter G. Zion Page 10
Now, if the user typed, for instance,
Can you tell me how to leech your files?
and the computer looked in the Response section and found the
entry
Can you
Yes, I can *.
the computer would take everything AFTER the "Can you" in the
user's sentence, substitute every "You" for a "Me" and every
"Your" for a "My" and vice versa, substitute the result for the
'*' in "Yes, I can *.", and type this to the user. The computer
would end up typing
Yes, I can tell you how to leech my files.
To terminate the Personal section, use the
!End Personal
directive.
Text Macros
Psys has several text macros that can be substituted into
anything in the Response and Random Response sections and will
substitute for various text strings.
@u - The user's first name
@l - The user's last name
@f - The user's full name
@s - The SysOp's first name
@y - The SysOp's last name
@m - The SysOp's full name
@b - The BBS name
* - The rest of the sentence after the detected phrase when
used in Response section
~ - Scrap current response and use previous
Some Notes on the Language File
1. The sections of the language file do not have to be in
any specific order. For instance, if you wanted to have
the Response section before the General section, Psys will
have no problem with it. However, the order of the
information inside the General section is very important.
If it's not in the right order, Psys will not be able to
Psys Version 1.00 By Peter G. Zion Page 11
detect it but it's use of the information will be wrong.
For instance, if you had the "go away" string in the place
where the user's name is supposed to be, Psys will think
that the user's name is "go away" (which could, under the
right circumstances, loose you some friends).
2. All text that is output by Psys is case sensitive,
while all text that Psys tries to detect is not. For
instance, the phrase that Psys tries to look for in the
Response section is not case sensitive, but the responses
are.
3. In the Random, Random Response, and Personal sections,
there are no limits on the number of entries except your
memory, with one exception: there can only be a maximum of
100 phrases for Psys to search for in one group in the
Response section. Normally, the limit should never be
reached; however, if you are working with a very large
language file, keep this limit in mind.
Some Notes on Sharing
Psys has been carefully programmed so that it can be used
several times at once. For instance, if you were running a two
node BBS system and it happened to be run by a user on each node
at the same time, there would be no problems -- however, you MUST
have SHARE.EXE installed to do this. Without having SHARE
installed, undefined and possibly dissasterous things can happen
(read: I hope you backed up recently). However, only one copy of
Psys can write to the same log file at once. To solve this,
either don't expect to get transcripts from two nodes
concurently, or set an alternate log file for each node with the
/L command line parameter.
Mailing Address
If you would like to leave me a comment about Psys, need
help with a certain aspect of Psys, or report a bug (God forbid
one exists) then I can be reached at any of the following
network/snailmail addresses:
BBS Pete's Bar and Grill - Kingston, Ontario
613-531-9801
FidoNet 1:249/148
ImexNet 89:487/102
Home 43 Newcourt Place,
Kingston, Ontario,
K7M 6Y1 CANADA
Please make sure that you have read the documentation
Psys Version 1.00 By Peter G. Zion Page 12
several times before you send me a question about using Psys. I
probably won't even respond to one like "How do I use Psys in
remote mode?". Would you?
If you would like the source code, please send a cheque or
money order for $15 (US or Canadian), along with a note
specifying whether you want a disk with the source code or just
the F'req password.
I would love to hear any comments or suggestions about Psys
from you; the best suggestion usually come from the users,
anyway!
Psys Version 1.00 By Peter G. Zion Page 13